package com.lln.cjcx.util;

import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * @author LiLinnan
 * @version 1.0
 * @date 2020/1/14 23:11
 */

public class CommonUtils {
	private CommonUtils(){
		throw new RuntimeException();
	}
	/**
	 * 生成32位的md5
	 * 代码来自网络
	 *
	 * @param plainText 要生成md5的文本
	 * @return 32位md5
	 */
	public static String md5(String plainText) {
		//定义一个字节数组
		byte[] secretBytes;
		try {
			// 生成一个MD5加密计算摘要
			MessageDigest md = MessageDigest.getInstance("MD5");
			//对字符串进行加密
			md.update(plainText.getBytes());
			//获得加密后的数据
			secretBytes = md.digest();
		} catch (NoSuchAlgorithmException e) {
			throw new RuntimeException("没有md5这个算法！");
		}
		//将加密后的数据转换为16进制数字
		StringBuilder md5code = new StringBuilder(new BigInteger(1, secretBytes).toString(16));
		// 如果生成数字未满32位，需要前面补0
		int length = 32;
		for (int i = 0; i < length - md5code.length(); i++) {
			md5code.insert(0, '0');
		}
		return md5code.toString();
	}


	/**
	 * 将学期Id转为学期名称
	 *
	 * @param termId 学期Id
	 * @return 学期名称
	 */
	public static String termName(String termId) {
		String[] termIds = termId.split("-");
		if (termIds.length != 4) {
			return termId;
		}
		try {
			int a = Integer.parseInt(termIds[0]);
			int b = Integer.parseInt(termIds[1]);
			int c = Integer.parseInt(termIds[2]);
			return a + "-" + b + "学年" + (c == 1 ? "秋" : "春");
		} catch (Throwable e) {
			return termId;
		}
	}
}
